; (for [x (range 10)]
; 	(do
; 		(print x)))

; (setv x 3)
; (while (< x 5)
; 	(do
; 		(setv x (+ x 1))
; 		(print x)))

; (setv x 10)
; (if
; 	(<= x 5)
; 	(do
; 		(print "small than 5"))
; 	(<= x 10)
; 	(do
; 		(print "small than 10"))
; 	(print "bigger than 10"))


; (setv ls {:tar "ttt"})
; (print ls)


; (setv ls [
; 	3
; 	#_ /])
; (print ls)



; (print "Executing")
; (defmacro m []
; 	(print "Now for a slow computation")
; 	(setv x (% (** 10 2 7) 3))
; 	(print "Done computing")
; 	x)
; (print "Value:" (m))
; (print "Done executing")



;; (defclass testa []
;; 	(defn __init__ [self x]
;; 		(setv self.x x)
;; 	)
;; 	(defn getx [self]
;; 		self.x)
;; 	(defn get_im []
;; 		"1234")
;; )
;; (setv x (testa 3))
;; (print (. x x))
;; (print (testa.get_im))
;; (print (x.getx))
;; (print (.getx x))


;; (defn test [a b &optional c [d "x"] &rest e]
;; 	#{ a b c d e} )
;; (print (test 1 2))
;; (print (test 1 2 :d "y"))


;; (print
;; 	(list
;; 		(filter
;; 			(fn [x] (= (% x 2) 0))
;; 			(range 10)
;; 		)
;; 	)
;; )


;; (defn fib [n]
;; 	(setv res
;; 		(if (< n 2)
;; 			n
;; 			(+ (fib (- n 1)) (fib (- n 2)))))
;; 	(print
;; 		(+
;; 			(+ "tempt res:" (str res))
;; 			(+ "n:" (str n))
;; 		)
;; 	)
;; 	res)

;; (print (fib 6))